home *** CD-ROM | disk | FTP | other *** search
/ CD ROM Paradise Collection 4 / CD ROM Paradise Collection 4 1995 Nov.iso / program / swagn_r.zip / NUMBERS.SWG / 0020_ROMAN2.PAS.pas < prev    next >
Pascal/Delphi Source File  |  1993-05-28  |  1KB  |  48 lines

  1. {
  2. >Anyone know of how to make a Program that will convert any
  3. >Integer entered into roman numeral Format?
  4. }
  5.  
  6. Program Roman_Numeral_Test;
  7.  
  8. Type
  9.   st_4 = String[4];
  10.   st_15 = String[15];
  11.   star_4 = Array[0..3] of st_4;
  12.   star_10 = Array[0..9] of st_4;
  13.  
  14. Const
  15.   Wunz : star_10 = ('', 'I', 'II', 'III', 'IV',
  16.                     'V', 'VI', 'VII', 'VIII', 'IX');
  17.  
  18.   Tenz : star_10 = ('', 'X', 'XX', 'XXX', 'XL',
  19.                     'L', 'LX', 'LXX', 'LXXX', 'XC');
  20.  
  21.   Hunz : star_10 = ('', 'C', 'CC', 'CCC', 'CD',
  22.                     'D', 'DC', 'DCC', 'DCCC', 'CM');
  23.  
  24.   Thouz : star_4 = ('', 'M', 'MM', 'MMM');
  25.  
  26.  
  27. Function Dec2Roman(wo_in : Word) : st_15;
  28. begin
  29.   Dec2Roman := Thouz[(wo_in div 1000)] +
  30.                Hunz[((wo_in mod 1000) div 100)] +
  31.                Tenz[(((wo_in mod 1000) mod 100) div 10)] +
  32.                Wunz[(((wo_in mod 1000) mod 100) mod 10)]
  33. end;
  34.  
  35. Var
  36.   wo_Temp : Word;
  37.  
  38. begin
  39.   Writeln;
  40.   Write(' Enter number to be converted to roman-numeral equivalent: ');
  41.   readln(wo_Temp);
  42.   if (wo_Temp > 3999) then
  43.     wo_Temp := 3999;
  44.   Writeln;
  45.   Writeln(' Roman-numeral equivalent of ', wo_Temp, ' = ', Dec2Roman(wo_Temp))
  46. end.
  47.  
  48.